之前写过nginx HTTP2编译安装的文章, 最近想探索下nginx with gRPC support, 所以更新一下.
yum apt等包管理系统安装的软件有时候比较旧, 导致一些莫名其妙的问题. 最近在给Nginx加HTTP/2模块中, 编译时加上了--with-http_v2_module
参数, 但Chrome请求发现还是不是http2, 后面发现是OpenSSL版本太低. 踩过这一坑后, 感觉Linux下部分软件最好还是自己编译安装比较妥, 如果编译过程出错, 搜下错误信息, 一般是基础依赖没有安装, 很好解决.
官方的源码编译指南
https://nginx.org/en/docs/configure.html
https://nginx.org/en/docs/http/ngx_http_v2_module.html (这里写了需要OpenSSL1.0.2以上版本), 很多选项都有合适的默认值, 比如–prefix=/usr/local/nginx, 所以只需要指定自己需要的字段
--user=www-data // 习惯将web相关的服务以www-data用户运行, 如没有此用户可以创建一个也可不加此项按默认nobody用户 |
cd /usr/local |
2.[官网下载OpenSSL 1.0.2以上版本].https://github.com/openssl/openssl/releases
cd nginx-1.14.2 |
2.官网下载pcre
注意Nginx不支持pcre2,下载pcre最新版即可. 解压到Nginx解压的目录
cd nginx-1.14.2 |
4.官网下载zlib(version 1.1.3 — 1.2.11)
cd nginx-1.14.2 |
5.编译并安装
./configure \ |
6.为了方便操作,软链/usr/local/nginx/sbin/nginx到/usr/local/bin
ln -sf /usr/local/nginx/sbin/nginx /usr/local/bin |